package apig.client.serviface;

import java.util.*;

import com.google.gwt.user.client.rpc.*;

public interface ApigServiceAsync {

	// 
	void getAllStuds(AsyncCallback<HashMap<Group, List<Student>>> callback);
	
	// code
	void getCodes(CodeQuery cq, AsyncCallback<List<Code>> callback);

	void getHypos(int codeId,
			AsyncCallback<HashMap<Integer, List<Hypo>>> callback);

	void getCodeOwner(int codeId, AsyncCallback<String> callback);

	void getCode(int codeId, AsyncCallback<Code> callback);

	// syllabus

	void getStudDisciplines(int studId, AsyncCallback<List<Discipline>> callback);

	void getDisciplineLabs(int disciplineId, AsyncCallback<List<Lab>> callback);

	void assignDiscipline(int discId, int groupId, boolean assign,
			AsyncCallback<Void> callback);

	void createDiscipline(Discipline d, int ownerId,
			AsyncCallback<Void> callback);

	void removeDiscipline(int discId, AsyncCallback<Void> callback);

	void createLab(Lab l, AsyncCallback<Void> callback);

	void removeLab(int labId, AsyncCallback<Void> callback);

	void getStudLabs(int studId,
			AsyncCallback<HashMap<Discipline, List<Lab>>> callback);

	// user
	public void getUserData(AsyncCallback<UserData> callback);
	public void doLogin(String login, String pass, AsyncCallback<Boolean> callback);
	public void doLogout(AsyncCallback<Boolean> callback);

}
